/**
 * @author Thomas Pfeiffer
 * @file   CaesarCrypt.h
 * @brief  Declaration of the class Caesar crypt.
 * 
 */
#ifndef CAESARCRYPT_H
#define CAESARCRYPT_H

#include <string>
#include "Crypter.h"

/**
 * @class CaesarCrypt
 * @brief Implements the Caesar-Crypt algorithm.
 * The class CaesarCrypt implements the virtual functions
 * of its Base class. It's able to encrypt plain text to
 * a Caesar encoded text and vice versa.
 */
class CaesarCrypt : public Crypter {
public:
	
	void Encrypt();
	void Decrypt();

	std::string getFileExtension() const;

private:

	// Number of Different characters which can be represented with
	// the ASCII code. Encrypted value 0 is not valid. Therefore 
	// the number is only 255.
	static const short NO_CHARS = 255;

	// The key for the Caesar Algorithm
	static const int mKey = 13;
};

#endif